.. _cmmCmpTrgContRegTable: cmmCmpTrgContRegTable ============================ ---------------------------- SYNOPSIS ``````````` .. code-block:: none VT_I4 cmmCmpTrgContRegTable( [in] VT_I4 Axis, [in] VT_PR8 Buffer, [in] VT_I4 NumData ) DESCRIPTION ``````````````` - 연속적인 위치 비교 출력 기능을 사용하기 위해서 임의의 연속적인 위치 데이터를 등록합니다 PARAMETER ``````````` - Axis: 축번호. 축번호는 상수값으로 [cmX1] 부터 0 번째 축을 기준 축으로 임의의 축을 설정할 수 있습니다. \ - Buffer : 연속적인 위치 데이터를 담고 있는 버퍼(배열). 이 버퍼에 설정되는 위치데이터는 “Unit distance”에 의해 정의되는 논리적 거리 단위를 사용하며, 절대좌표값으로 설정하여야 합니다. \ - NumData : 버퍼에 담겨있는 위치 데이터의 수 REFERENCE ``````````` - 논리적 거리 단위는 cmmCfgSetUnitDist() 함수에 의해 결정됩니다. \ - 이 함수는 위치데이터만 등록하는 것이며 CmpTrgContStart() 함수를 호출해야만 등록한 데이터들이 적용되는 연속적인 위치비교출력 기능이 시작됩니다. \ - 아래의 예제에서는 X 축을 0 에서 50000 좌표로 이동시키면서 Command counter 값이 1000, 5000, 10000, 20000, 30000 이 될 때 각각 트리거 펄스가 출력되도록 하는 예입니다. 따라서 연속적으로 총 5 회의 트리거 펄스가 출력되게 됩니다. RETURN VALUE ````````````` .. csv-table:: :widths: 10 85 :header-rows: 1 :stub-columns: 0 Value, Meaning 음수, 수행 실패 cmERR_NONE, 수행 성공 EXAMPLE ````````` - 아래의 예제에서는 X 축의 Command(cmCNT_COMM) 위치값이 10000 이 되면 CMP 트리거 펄스를 출력하도록 하는 것입니다. 이때 (+)방향쪽으로 이동시에만 트리거펄스가 출력되고 (-)방향으로 이동할 때는 출력하지 않도록(cmEQ_PDIR) 합니다. .. code-block:: c++ :linenos: :emphasize-lines: 5 C/C++ double fDataBuf [5]={1000, 5000, 10000, 20000, 30000}; ... cmmCmpTrgSetConfig(cmX1, cmCNT_COMM, cmEQ_PDIR); // 연속적인 위치데이터 등록 // cmmCmpTrgContRegTable(cmX1, fDataBuf, 5); // 연속적인 위치 비교 기능 시작 // cmmCmpTrgContStart(cmX1); ... /* X 축을 50000 포인트로 이동한다. 이동하면서 지정한 위치마다 CMP 트리거 펄스가 출력되게 된다. */ cmmSxMoveTo(cmX1, 50000, cmFALSE); cmmCmpTrgContStop(cmX1) ; // 연속위치비교 기능 종료 .. code-block:: none :linenos: Visual Basic Dim fDataBuf(5) As Double fDataBuf(0) =1000 fDataBuf(1) = 5000 fDataBuf(2) = 10000 fDataBuf(3) = 20000 fDataBuf(4) = 30000 … Call cmmCmpTrgSetConfig(cmX1, cmCNT_COMM, cmEQ_PDIR) ‘ 연속적인 위치데이터 등록 Call cmmCmpTrgContRegTable(cmX1, fDataBuf, 5) ‘ 연속적인 위치 비교 기능 시작 Call cmmCmpTrgContStart(cmX1) … ‘ X 축을 50000 포인트로 이동한다. 이동하면서 지정한 위치마다 CMP 트리거 펄스가 출력되게 된다. Call cmmSxMoveTo(cmX1, 50000, cmFALSE) Call cmmCmpTrgContStop(cmX1) ‘ 연속위치비교 기능 종료 .. code-block:: none :linenos: Delphi Const fDataBuf : Array[0..4] of Double = (1000,5000,10000,20000,30000); begin cmmCmpTrgSetConfig(cmX1, cmCNT_COMM, cmEQ_PDIR); // 연속적인 위치데이터 등록 // cmmCmpTrgContRegTable(cmX1,@fDataBuf, 5); // 연속적인 위치 비교 기능 시작 // cmmCmpTrgContStart(cmX1); … // X 축을 50000 포인트로 이동한다. 이동하면서 지정한 위치마다 CMP 트리거 펄스가 출력되게 된다. cmmSxMoveTo(cmX1, 50000, cmFALSE); cmmCmpTrgContStop(cmX1) ; // 연속위치비교 기능 종료 end;